1. Field of the Invention
The present invention relates generally to context-aware applications for computer systems, and more particularly to a novel unified communication system that automatically manages both two-way and one-way human communication across heterogeneous and arbitrary communications devices.
2. Description of the Prior Art
Modern man is part of a highly connected communication network. He can be reached through a wide variety of communication mechanisms. Communication between people can take place through e-mail, instant messaging, cellular phone, landline phone, Short Message Service (SMS), voice-mail, pager etc. Each means of communication has its own sets of features and drawbacks. Although a person typically has multiple communication devices (a “device” as referred to and understood herein representing a broad range of hardware entities like phones, pagers, etc. or software entities like instant messaging clients, e-mail clients, etc.), that person may have access to only a subset of them at a particular time. Depending on that person's situation, he/she may also have a preference on which of the available devices to use. For example, a person may prefer chatting with somebody using an instant messaging (IM) client when he/she is working on something else or, in the middle of a meeting. But when the meeting is over or if that person has to leave the room, he/she may want to continue chatting with the other party on his/her cell phone or via short messaging service. Hence, a unified communication system that allows a person to communicate using the most convenient device at the time will enhance user experience and offer more opportunities for collaboration.
Although there are already systems that dispatch messages to a person on an appropriate device (for example, as described in the reference to M. Roussopoulos, P. Maniatis, E. Swierk, K. Lai, G. Appenzeller and M. Baker entitled “Personal-level Routing in the Mobile People Architecture”, Proceedings of the USENIX Symposium on Internet Technologies and Systems, October 1999; and, in the reference to B. Raman, R. Katz, and A. Joseph entitled “Universal Inbox: Providing Extensible Personal Mobility and Service Mobility in an Integrated Communication Network”, Proceedings of the Third IEEE Workshop on Mobile Computing Systems and Applications, Monterey, Calif., December 2000; and in the reference to H. Lei, D. Sow, J. Davis II, G. Banaduth and M. Ebling in a reference entitled “The Design and Applications of a Context Service” ACM Mobile Computing and Communications Review (MC2R), October 2002), they are effectively unified one-way messaging systems that allow sending a single message at a time. The inherent differences between two-way communication (i.e., conversation) and one-way messaging (i.e., notification) introduce new issues and challenges in the design of a unified two-way communication system. First, one-way messaging is asynchronous in that there may be arbitrary time lapse between the sending and receiving of a message. In comparison, two-way communication is synchronous: both parties must be present in order for a conversation to take place. Thus, two-way communication requires proper call setup. Call setup alerts the callee and obtains her acceptance for the call. It further involves negotiation between the devices on communication media. Second, while one-way messaging is stateless, two-way communication consists of a sequence of exchanges and is stateful. Call state must be maintained for the entire duration of the call. Also, call migration from one device to another may be desirable and needs to be supported. Third, not all devices have native support for two-way communication. Nevertheless, it may still be useful to exploit one-way devices such as pagers and email to enhance two-way communication, as opposed to ignoring them.
A promising technology for unified two-way communication is the Session Initiation Protocol (SIP) such as described in the reference to M. Handley, H. Schulzrinne, E. Schooler and J. Rosenberg entitled “SIP: Session Initiation Protocol”. Request for Comments 2543, Internet Engineering Task Force, March 1999, the whole contents and disclosure of which is incorporated by reference as if fully set forth herein. SIP is an application-layer control or signaling protocol for creating, modifying and terminating sessions with two or more participants. These sessions include Internet multimedia conferences, Internet telephone calls, multimedia distribution, and instant messaging. However, SIP only provides a mechanism for managing calls. It does not specify what policies should be used for call management or how the policies should be enforced. It is obviously impractical to expect users to manually and constantly control all the call aspects such as where to route a call and whether to migrate a call. Further, most existing communication devices are not yet SIP-enabled and therefore may not be directly plugged into the SIP framework.
Accordingly, a need exists for a unified communication system that automatically manages both two-way and one-way human communication across heterogeneous and arbitrary devices.
It would thus be highly desirable to provide a unified communication system that automatically manages both two-way and one-way human communication across heterogeneous and arbitrary devices.